﻿using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using Domain;
using DAO;
using Microsoft.Practices.EnterpriseLibrary.Validation;

public partial class EmpRegistracion : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            CargarRubros();
        }
    }
    protected void btn_registrar_Click(object sender, EventArgs e)
    {
        ul_mensajes.InnerHtml = string.Empty;

        if (ddl_Rubro.SelectedIndex == 0)
        {
            ul_mensajes.InnerHtml += "<li class='itemerror'>" + "Debe seleccionar un rubro" + "</li>";
            return;
        }

        long cuit = 0;
        if (!long.TryParse(txt_cuit.Text, out cuit))
        {
            ul_mensajes.InnerHtml += "<li class='itemerror'>" + "Debe especificar un CUIT válido" + "</li>";
            return;
        }

        Empresa empresa = new Empresa(cuit, 
                                      txt_pass.Text,
                                      txt_mail.Text,
                                      null,
                                      txt_razon.Text,
                                      ddl_Rubro.Text, 
                                      new System.Collections.Generic.List<Publicacion>(), 
                                      null,
                                      null);
        ValidationResults validaciones = Validation.Validate(empresa);
        if (validaciones.Count() != 0)
        {
            foreach (ValidationResult v in validaciones)
            {
                ul_mensajes.InnerHtml += "<li class='itemerror'>" + v.Message + "</li>";
            }

            return;
        }

        if (EmpresaDAO.Traer(empresa.UserName) != null)
        {
            ul_mensajes.InnerHtml += "<li class='itemerror'>" + "La empresa ya existe" + "</li>";
            return;
        }

        if (!EmpresaDAO.Guardar(empresa))
        {
            ul_mensajes.InnerHtml += "<li class='itemerror'>" + "Ocurrio un inconveniente. Intente nuevamente mas tarde" + "</li>";
            return;
        }
        Utils.operadorLogueado = EmpresaDAO.Traer(empresa.UserName);

        Response.Redirect(Utils.SecureRedirect("~/EmpAdminPanel.aspx"));
    }

    private void CargarRubros()
    {
        string[] rubros = ConfigurationManager.AppSettings["rubros"].ToString().Split('|');
        ddl_Rubro.DataSource = rubros;
        ddl_Rubro.DataBind();
    }
}
